<?php

App::uses('AppModel', 'Model');
App::uses('LogsDao','Model');
define('CAMPOS_TABLA_USUARIOS','id,usuari,contrasenya,mail,actiu,permisos,data_alta');
define('CAMPOS_TABLA_USUARIOS_JOCNET','idusuario,mail,nom,cognoms,data_naixement,club,info_jocnet');

class UsuariosDao extends AppModel {
	
	public $useTable = false;
	var $logsDao;
	public $tabla_usuarios = 'usuarios_admin';
	
	function __construct(){
		$this->logsDao = new LogsDao();
	}
  
    public function usuarioExiste($usuario,$contraseña){
    	
    	$queryString="SELECT ".CAMPOS_TABLA_USUARIOS." FROM ".$this->tabla_usuarios." WHERE (usuari='".$usuario."' OR mail='".$usuario."') AND contrasenya='".$contraseña."' AND actiu=1 LIMIT 0,1 ";
		$returnValue  = $this->query($queryString);
    	if(empty($returnValue)){ // si no existe ningun usuario con estos datos false
    		return false;
    	}else{
    		return $returnValue[0];
    	}
       	
    }
    
    public function updateUserPassEmail($id,$usuari,$pass,$mail){
    	$queryString = "UPDATE ".$this->tabla_usuarios." SET usuari = '".$usuari."',contrasenya = '".$pass."',mail = '".$mail."' WHERE id = ".$id;
	return $this->returnValueTrue($queryString);
    }
    
    
    public function getCountUsuaris(){
        $queryString = "SELECT count(idusuario) as total FROM usuarios";
	try {
		$returnValue = $this->query($queryString);
		return $returnValue[0]->total;
	}catch (Exception $e) {
		$this->logsDao->insert("error count usuaris",$e->getMessage());
	}
    }
    
    
    
    public function getUsuarioPorId($idUsuario){
    	$queryString = "SELECT ".CAMPOS_TABLA_USUARIOS." FROM ".$this->tabla_usuarios." WHERE id=".$idUsuario;

    	try {
    		$returnValue = $this->query_row($queryString);
    	
    		if(empty($returnValue)){
    			return false;
    			exit();
    		}
    		return $returnValue[0];
    	
    	}catch (Exception $e) {
    		$this->logsDao->insert("error getUsuarioPorId",$e->getMessage());
    	}
    }
    
    public function getAllUsuarisJocNet(){
    	$queryString="SELECT ".CAMPOS_TABLA_USUARIOS_JOCNET." FROM usuarios";
    	$returnValue  = $this->query($queryString);
    	if(empty($returnValue)){ // si no existe ningun usuario con estos datos false
    		return false;
    	}else{
    		return $returnValue;
    	}
    }

    public function getContrasenyaPerMail($usuari){
    	
    	$queryString="SELECT contrasenya FROM ".$this->tabla_usuarios." WHERE mail='".$usuari."' ";

    	try {
    		$returnValue = $this->query($queryString);

    		if(empty($returnValue)){
    			return false;
    			exit();
    		}
    		return $returnValue[0]->contrasenya;
        		
    	}catch (Exception $e) {
    		$this->logsDao->insert("error getContrasenyaPerMail",$e->getMessage());
    	}
    	
    }
    
    public function updateNomUsuari($id,$usuari){
    	$queryString = "UPDATE ".$this->tabla_usuarios." SET usuari = '".$usuari."' WHERE id =".$id;
    	return returnValueTrue($queryString);
    }
    
    public function updateMail($id,$mail){
    	$queryString = "UPDATE ".$this->tabla_usuarios." SET mail = '".$mail."' WHERE id =".$id;
    	return returnValueTrue($queryString);
    }
    
    public function updatePasswordPerId($id,$contraseña){
    	$queryString = "UPDATE ".$this->tabla_usuarios." SET contrasenya = '".$contraseña."' WHERE id =".$id;
    	return returnValueTrue($queryString);
    
    }
    
    public function updatePasswordPerMail($mail,$contraseña){
    	$queryString = "UPDATE ".$this->tabla_usuarios." SET contrasenya = '".$contraseña."' WHERE mail ='".$mail."'";
    	return returnValueTrue($queryString);
    }
    
    
    
    public function getCodiSeguretatUsuari($id_usuario){
      
    
	   	$queryString="SELECT cod_seg FROM ".$this->tabla_usuarios." WHERE id=".$id_usuario;
		
		
		$returnValue  = $this->query($queryString);

	    if(empty($returnValue)){ // si no existe ningun usuario con estos datos false
	    	return false;
	    }else{
	    	return $returnValue[0];
	    }
		
    }
 
    public function getInfoUsuari(){
    	 
    }
    
    
    function returnValueTrue($queryString){ // ejecuta un update si es OK devuelve true , si no inserta log (hacer algo mas?)
    	try {
    		
    		$this->query_old($queryString);
		return true;
    	}catch (Exception $e) {
    		$this->logsDao->insert("error mysql",$e->getMessage());
    	}
    }
   
    
    
    
}



?>